using System.ComponentModel.DataAnnotations;
using System.Data.Entity.ModelConfiguration;

namespace RRHH.Models.Mapping
{
    public class EMPRESAMap : EntityTypeConfiguration<EMPRESA>
    {
        public EMPRESAMap()
        {
            // Primary Key
            this.HasKey(t => t.IDAUTO);

            // Properties
            this.Property(t => t.CODIGOEMPRESA)
                .HasMaxLength(6);

            this.Property(t => t.NOMBREEMPRESA)
                .HasMaxLength(50);

            this.Property(t => t.DIRECCIONEMPRESA)
                .HasMaxLength(60);

            this.Property(t => t.CODIGODEPARTAMENTO)
                .HasMaxLength(2);

            this.Property(t => t.CODIGOPROVINCIA)
                .HasMaxLength(2);

            this.Property(t => t.CODIGODISTRITO)
                .HasMaxLength(2);

            this.Property(t => t.REGISTROPATRONAL)
                .HasMaxLength(20);

            this.Property(t => t.RUCEMPRESA)
                .HasMaxLength(11);

            this.Property(t => t.ABREVIATURA)
                .HasMaxLength(50);

            this.Property(t => t.IDPAIS)
                .HasMaxLength(4);

            this.Property(t => t.ESTADO)
                .IsFixedLength()
                .HasMaxLength(1);

            // Table & Column Mappings
            this.ToTable("EMPRESA");
            this.Property(t => t.IDAUTO).HasColumnName("IDAUTO");
            this.Property(t => t.CODIGOEMPRESA).HasColumnName("CODIGOEMPRESA");
            this.Property(t => t.NOMBREEMPRESA).HasColumnName("NOMBREEMPRESA");
            this.Property(t => t.DIRECCIONEMPRESA).HasColumnName("DIRECCIONEMPRESA");
            this.Property(t => t.CODIGODEPARTAMENTO).HasColumnName("CODIGODEPARTAMENTO");
            this.Property(t => t.CODIGOPROVINCIA).HasColumnName("CODIGOPROVINCIA");
            this.Property(t => t.CODIGODISTRITO).HasColumnName("CODIGODISTRITO");
            this.Property(t => t.REGISTROPATRONAL).HasColumnName("REGISTROPATRONAL");
            this.Property(t => t.RUCEMPRESA).HasColumnName("RUCEMPRESA");
            this.Property(t => t.ABREVIATURA).HasColumnName("ABREVIATURA");
            this.Property(t => t.IDPAIS).HasColumnName("IDPAIS");
            this.Property(t => t.ESTADO).HasColumnName("ESTADO");
        }
    }
}
